1 package activity;
2
3 import java.lang.*;
4 import javax.swing.*;
5 import java.awt.*;
6 import javax.swing.border.*;
7 import java.awt.event.*;
8 import attr.*;
9
10 public class LoginActivity extends JFrame implements ActionListener {
11 private JPanel panel;
12 private JButton buttonExit, buttonLogin, buttonSignup;
13 private JLabel title, header, usernameLabel, passwordLabel;
14 private JTextField usernameTF;
15 private JPasswordField passwordF;
16 public LoginActivity() {
17 super("Login");
18
19 this.setSize(Theme.GUI_WIDTH, Theme.GUI_HEIGHT);
20 this.setResizable(false);
21 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
22 this.setLocationRelativeTo(null);
23
24 panel = new JPanel();
25 panel.setLayout(null);
26 panel.setBackground(Theme.BACKGROUND_PANEL);
27
28 title = new JLabel("Shop Management System");
29 title.setBounds(30, 40, 555, 75);
30 title.setOpaque(true);
31 title.setBorder(new EmptyBorder(0,20,0,0));
32 title.setFont(Theme.FONT_TITLE);
33 title.setForeground(Theme.COLOR_TITLE);
34 panel.add(title);
35
36 buttonExit = new JButton("Exit");
37 buttonExit.setBounds(Theme.GUI_WIDTH-140, 40, Theme.BUTTON_PRIMARY_WIDTH,30);
38 buttonExit.setFont(Theme.FONT_BUTTON);
39 buttonExit.setBackground(Color.WHITE);
40 buttonExit.setForeground(Theme.COLOR_TITLE);
41 buttonExit.addActionListener(this);
42 panel.add(buttonExit);
43
44 buttonSignup = new JButton("Sign up");
45 buttonSignup.setBounds(Theme.GUI_WIDTH-140, 80, Theme.BUTTON_PRIMARY_WIDTH,30);
46 buttonSignup.setFont(Theme.FONT_BUTTON);
47 buttonSignup.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
48 buttonSignup.setForeground(Theme.COLOR_BUTTON_PRIMARY);
49 buttonSignup.addActionListener(this);
50 panel.add(buttonSignup);
51
52 usernameLabel = new JLabel("User ID: ");
53 usernameLabel.setBounds(210, 220, 120, 30);
54 usernameLabel.setFont(Theme.FONT_REGULAR);
55 panel.add(usernameLabel);
56
57 usernameTF = new JTextField();
58 usernameTF.setBounds(330, 220, 220, 30);
59 usernameTF.setFont(Theme.FONT_INPUT);
60 panel.add(usernameTF);
61
62 passwordLabel = new JLabel("Password: ");
63 passwordLabel.setBounds(210, 280, 120, 30);
64 passwordLabel.setFont(Theme.FONT_REGULAR);
65 panel.add(passwordLabel);
66
67 passwordF = new JPasswordField();
68 passwordF.setBounds(330, 280, 220, 30);
69 passwordF.setFont(Theme.FONT_INPUT);
70 panel.add(passwordF);
71
72 buttonLogin = new JButton("Login");
73 buttonLogin.setBounds(230, 345, 300, 30);
74 buttonLogin.setFont(Theme.FONT_BUTTON);
75 buttonLogin.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
76 buttonLogin.setForeground(Theme.COLOR_BUTTON_PRIMARY);
77 buttonLogin.addActionListener(this);
78 panel.add(buttonLogin);
79
80 header = new JLabel();
81 header.setBackground(Theme.BACKGROUND_HEADER);
82 header.setOpaque(true);
83 header.setBounds(0, 0, Theme.GUI_WIDTH, 75);
84 panel.add(header);
85
86 this.add(panel);
87 }
88
89 public void actionPerformed(ActionEvent ae) {
90 if (ae.getSource().equals(buttonExit))
91 System.exit(0);
92 else if (ae.getSource().equals(buttonSignup)) {
93 this.setVisible(false);
94 new SignupActivity().setVisible(true);
95 }
96 else if (ae.getSource().equals(buttonLogin)) {
97 int status = User.checkStatus(usernameTF.getText(), passwordF.getText());
98 if (status == 0) {
99 EmployeeActivity ea = new EmployeeActivity(usernameTF.getText());
100 ea.setVisible(true);
101 this.setVisible(false);
102 }
103 else if (status == 1) {
104 CustomerActivity ca = new CustomerActivity(usernameTF.getText());
105 ca.setVisible(true);
106 this.setVisible(false);
107 }
108 else {
109 JOptionPane.showMessageDialog(this,"Invalid ID or Password");
110 }
111 }
112 else {}
113 }
114 }